﻿// <copyright file="MovieReview.cs" company="Microsoft Corporation">
// Copyright (c) 2009 Microsoft Corporation All Rights Reserved
// </copyright>
// <author>Michael S. Scherotter</author>
// <email>mischero@microsoft.com</email>
// <date>2009-04-08</date>
// <summary>Movie Review class</summary>

namespace NYTimes.Data
{
    using System;
    using System.Collections.Generic;
    using System.Windows.Media.Imaging;

    /// <summary>
    /// New York Times Movie Review
    /// </summary>
    public class MovieReview
    {
        #region Properties
        /// <summary>
        /// Gets or sets the New York Times ID for the Movie
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Gets or sets the display title
        /// </summary>
        public string DisplayTitle { get; set; }

        /// <summary>
        /// Gets or sets a short review supplied by the Times critic. Example (for the film Code 46): "Insurance investigator's affair disturbs dystopian order. Strenuously inventive future filmed with a logy elegance."
        /// </summary>
        public string CapsuleReview { get; set; }

        /// <summary>
        /// Gets or sets the publication date for the review
        /// </summary>
        public DateTime PublicationDate { get; set; }

        /// <summary>
        /// Gets or sets the opening date
        /// </summary>
        public DateTime? OpeningDate { get; set; }

        /// <summary>
        /// Gets or sets the DVD Release date
        /// </summary>
        public DateTime? DVDReleaseDate { get; set; }

        /// <summary>
        /// Gets or sets the byline
        /// </summary>
        public string Byline { get; set; }

        /// <summary>
        /// Gets or sets the summary short.
        /// </summary>
        public string SummaryShort { get; set; }

        /// <summary>
        /// Gets or sets the thumbnail
        /// </summary>
        public BitmapImage Thumbnail { get; set; }

        /// <summary>
        /// Gets or sets the sort name
        /// </summary>
        public string SortName { get; set; }

        /// <summary>
        /// Gets or sets the MPAA Rating
        /// </summary>
        public string MPAARating { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this is a critic's picks
        /// </summary>
        public bool CriticsPick { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether the movie is included in the Times list of The Best 1,000 Movies Ever Made.
        /// </summary>
        public bool ThousandBest { get; set; }

        /// <summary>
        /// Gets or sets the headline
        /// </summary>
        public string Headline { get; set; }

        /// <summary>
        /// Gets or sets the SEO Name
        /// </summary>
        public string SEOName { get; set; }

        /// <summary>
        /// Gets or sets the link
        /// </summary>
        public Link Link { get; set; }

        /// <summary>
        /// Gets or sets the related URLs
        /// </summary>
        public IEnumerable<Link> RelatedUrls { get; set; }

        #endregion

        #region Methods
        /// <summary>
        /// returns a string with all of the non-null properties and values
        /// </summary>
        /// <returns>a string with all of the non-null properties and values</returns>
        public override string ToString()
        {
            return Synergist.Utility.GetProperties(this);
        }
        #endregion
    }
}
